The present invention is directed to a method for determining the product of a plurality of N numbers and an apparatus for carrying out that method.
In a computing system employing solid state components, preferably constructed from silicon components arrayed on a substrate, certain basic design criteria generally apply. For example, it is desired that the least space possible upon the substrate be occupied by each component. Further, it is desired that energy consumed by the apparatus be minimized as much as possible, especially in battery-supplied systems. Also, it is desired that the computing system operate as speedily as possible.
A multiplier for such computing systems is generally fashioned of a matrix of switching transistors, which matrix is of sufficient size to accommodate the maximum expected size of numbers to be handled by the computing apparatus. Thus, for example, in order to have a multiplication of a 4-digit number by a 4-digit number, a multiplier would necessarily comprise a 16.times.16 bit matrix (i.e., 16 columns of transistors, each column having 16 rows of transistors) with additional rows, or columns, or both to accommodate carries and other overhead operations involved in multiplication.
For smaller numbers, higher significance bits within the multiplier matrix are zero-filled as appropriate to correctly store the multiplicand and the multiplier involved in the multiplication operation. However, those zero-filled bits must still be powered-up in order to effect such zero-filling. Such zero-filled bits are necessarily involved in the calculations effected by the multiplier, so speed of operation, power requirements, and "real estate" (i.e., space) occupancy on the substrate are all sacrificed in accommodating larger numbers for multiplication operations.
It is well-known by those skilled in the art that a memory fetch operation is generally faster than a multiplication operation and generally consumes less power than a multiplication operation. Both of these features--increased speed and lesser power consumption--are desirable traits, especially in today's battery-powered laptop and notebook computers and in even smaller devices.
The product of a particular set of numbers will be the same resulting number every time those particular numbers of that set are multiplied. It is not necessary to recalculate the product every time the product is desired. It suffices to determine the product in advance and store the product for retrieval when needed.
It would be advantageous to have a method and apparatus for multiplying a plurality of numbers which does not require a multiplier to determine the product of the plurality of numbers.